package cn.com.blueInfo.bpm.system.repository;

import cn.com.blueInfo.bpm.system.entity.Tenant;
import cn.com.blueInfo.bpm.system.request.TenantDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* 租户定义 数据服务类
* @author suxch
* @since 2025-09-01 19:17:41
*/
public interface TenantRepository extends IService<Tenant> {

    /**
    * 新增租户定义
    * @param tenant 租户定义参数
    */
    Integer createTenant(Tenant tenant);

    /**
     * 批量新增租户定义
     * @param tenantList 租户定义参数列表
     */
    Integer batchCreateTenant(List<Tenant> tenantList);

    /**
    * 删除租户定义
    * @param tenantId 租户定义ID
    */
    Integer deleteTenant(Long tenantId);

    /**
     * 批量删除租户定义
     * @param tenantIdList 租户定义ID列表
     */
    Integer batchDeleteTenant(List<Long> tenantIdList);

    /**
    * 更新部分租户定义
    * @param tenant 租户定义参数
    */
    Integer updateTenantPartial(Tenant tenant);

    /**
    * 更新全部租户定义
    * @param tenant 租户定义参数
    */
    Integer updateTenant(Tenant tenant);

    /**
    * 查询一条租户定义
    * @param tenantId 租户定义ID
    */
    Tenant getTenantById(Long tenantId);

    /**
    * 分页查询租户定义
    * @param tenantQueryDTO 租户定义参数
    */
    Page<Tenant> getTenantPage(TenantDTO.QueryDTO tenantQueryDTO);

    /**
     * 根据条件查询 租户定义 数量
     * @param tenantQueryDTO 租户定义参数
     */
    Long getTenantCount(TenantDTO.QueryDTO tenantQueryDTO);

    /**
     * 根据条件查询 租户定义
     * @param tenantQueryDTO 租户定义参数
     */
    List<Tenant> getTenantList(TenantDTO.QueryDTO tenantQueryDTO);

}
